const list1 = [1,2,3,4,5]

// 定义一个数组的类型，该数组只能放数字
const list2: number[] = [1,2,3,4,5]

// 该写法为泛型定义的写法
const list3: Array<number> = [1,2,3,4,5]

/*
  || 是或者的意思
  | 为计算机中的 位运算，0   1   10  11
*/
// 数组中定义多类型数据
const list4: (number | string)[] = [1,2,3,4,5, '谈恋爱图什么？不就是图个伤心吗，还会图难过']
const list5: Array<number | string | boolean> = [1,2, true,3,4,5, '谈恋爱图什么？不就是图个伤心吗，还会图难过']

// 如果数组中有对象类型的时候，可以给其添加类型
const list6: {
  name: string;
  age: number;
}[] = [
  {
    name: '涛涛',
    age: 20
  },{
    name: '不涛',
    age: 25
  },{
    name: '要涛',
    age: 28
  }
]

interface iObj {
  name: string
  age: number
  sex?: boolean
}


const list7: iObj[] = [
  {
    name: '涛涛',
    age: 20
  },{
    name: '不涛',
    age: 25
  },{
    name: '要涛',
    age: 28
  }
]


const list8: Array<iObj> = [
  {
    name: '涛涛',
    age: 20
  },{
    name: '不涛',
    age: 25
  },{
    name: '要涛',
    age: 28
  }
]

// 在某种情况下，我们的某一个变量的值有可能是几个固定的值
// up  down   left  right
let direction = 'right'
// 对应类型只能有某些固定值的时候我们可以使用啥方法呢？
// 可以使用 type
